package com.example.scaffold_demo.widget;

import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;

import com.example.scaffold_demo.BaseApplication;
import com.example.scaffold_demo.utils.StringUtil;


/**
 * Created by Administrator on 2018/4/26.
 */

public class ToastUtils {

    private static Toast toast;

    private static View view;

    private ToastUtils() {
    }

    private static void getToast(Context context) {
        if (toast == null) {
            toast = new Toast(context);
        }else{
            toast.cancel();
            toast = Toast.makeText( context, "", Toast.LENGTH_LONG );
            toast.setDuration( Toast.LENGTH_SHORT );
        }
        if (view == null) {
            view = Toast.makeText(context, "", Toast.LENGTH_SHORT).getView();
        }
        toast.setView(view);
    }
    public static void showShortToast(CharSequence msg) {
        showToast(BaseApplication.getContext(), msg, Toast.LENGTH_SHORT);
    }
    public static void showShortToast(Context context, CharSequence msg) {
        showToast(BaseApplication.getContext(), msg, Toast.LENGTH_SHORT);
    }

    public static void showShortToast(Context context, int resId) {
        showToast(BaseApplication.getContext(), resId, Toast.LENGTH_SHORT);
    }

    public static void showLongToast(Context context, CharSequence msg) {
        showToast(BaseApplication.getContext(), msg, Toast.LENGTH_SHORT);
    }

//    public static void showTestLongToast(Context context, CharSequence msg) {
//        if (EnvirUtil.getCurType() == EnvirUtil.EnvirType.TEST) {
//            showToast(AppApplication.getContext(), msg, Toast.LENGTH_SHORT);
//        }
//    }

    public static void showLongToast(Context context, int resId) {
        showToast(context.getApplicationContext(), resId, Toast.LENGTH_LONG);
    }

    private static void showToast(Context context, CharSequence msg, int duration) {
        if (TextUtils.isEmpty(msg) || StringUtil.isBlank(msg.toString()) ) {
            return;
        }
        try {
            getToast(BaseApplication.getContext());
            toast.setText(msg);
            toast.setDuration(duration);
            toast.show();
        } catch (Exception e) {
//            LogUtil.e(e.getMessage());
        }
    }

    private static void showToast(Context context, int resId, int duration) {

        try {
            if (resId == 0) {
                return;
            }
            getToast(BaseApplication.getContext());
            toast.setText(resId);
            toast.setDuration(duration);
            toast.show();
        } catch (Exception e) {
//            LogUtil.e(e.getMessage());
        }
    }

    public static void cancelToast() {
        if (toast != null) {
            toast.cancel();
        }
    }


}
